import { ApiProperty, PartialType } from '@nestjs/swagger';

export class UpdateThemeDto {
  @ApiProperty({ type: String, description: 'id' })
  id: string;
  @ApiProperty({ type: String, description: '主题名', default: '默认主题', required: false })
  name: string;
  @ApiProperty({ type: Boolean, description: '默认主题', default: false, required: false })
  status: boolean;
  @ApiProperty({
    type: Object,
    description: '背景配置',
    properties: {
      id: { type: 'string', description: 'id' },
      linearGradientStatus: {
        type: 'boolean',
        description: '开启颜色渐变功能',
        default: false,
      },
      fontColor: {
        type: 'string',
        description: '字体颜色',
        default: 'rgba(0,0,0,1)',
      },
    },
  })
  config: object;
  @ApiProperty({
    type: Object,
    description: '背景',
    properties: {
      id: { type: 'string', description: 'id' },
      backgroundOne: {
        type: 'string',
        description: '背景颜色1',
        default: 'rgba(255,255,255,1)',
      },
      backgroundTwo: {
        type: 'string',
        description: '背景颜色2',
        default: 'rgba(0,0,0,1)',
      },
      background: {
        type: 'string',
        description: '背景颜色默认与背景色1值',
        default: 'rgba(255,255,255,1)',
      },
      backgroundImage: {
        type: 'string',
        description: '背景图片',
        default: null,
      },
      mode: {
        type: 'string',
        description:
          '渐变方向--{从上到下: to bottom, 从左到右: to right, 左上角到右下角: to bottom right}',
        default: 'to right',
      },
      linearGradientStatus: {
        type: 'boolean',
        description: '开启渐变色',
        default: false,
      },
    },
  })
  background: object;
  @ApiProperty({
    type: Object,
    description: '底部导航栏',
    properties: {
      id: { type: 'string', description: 'id' },
      backgroundOne: {
        type: 'string',
        description: '背景颜色1',
        default: 'rgba(255,255,255,1)',
      },
      backgroundTwo: {
        type: 'string',
        description: '背景颜色2',
        default: 'rgba(0,0,0,1)',
      },
      background: {
        type: 'string',
        description: '背景颜色默认与背景色1值',
        default: 'rgba(255,255,255,1)',
      },
      backgroundImage: {
        type: 'string',
        description: '背景图片',
        default: null,
      },
      mode: {
        type: 'string',
        description:
          '渐变方向--{从上到下: to bottom, 从左到右: to right, 左上角到右下角: to bottom right}',
        default: 'to right',
      },
      linearGradientStatus: {
        type: 'boolean',
        description: '开启渐变色',
        default: false,
      },
      color: {
        type: 'string',
        description: '底部导航栏字体颜色',
        default: 'rgba(0,0,0,1)',
      },
      checked: {
        type: 'string',
        description: '底部导航栏选中的字体颜色',
        default: 'rgba(0,217,119, 1)',
      },
    },
  })
  bar: object;
  @ApiProperty({
    type: Object,
    description: '顶部导航栏',
    properties: {
      id: { type: 'string', description: 'id' },
      backgroundOne: {
        type: 'string',
        description: '背景颜色1',
        default: 'rgba(255,255,255,1)',
      },
      backgroundTwo: {
        type: 'string',
        description: '背景颜色2',
        default: 'rgba(0,0,0,1)',
      },
      background: {
        type: 'string',
        description: '背景颜色默认与背景色1值',
        default: 'rgba(255,255,255,1)',
      },
      backgroundImage: {
        type: 'string',
        description: '背景图片',
        default: null,
      },
      mode: {
        type: 'string',
        description:
          '渐变方向--{从上到下: to bottom, 从左到右: to right, 左上角到右下角: to bottom right}',
        default: 'to right',
      },
      linearGradientStatus: {
        type: 'boolean',
        description: '开启渐变色',
        default: false,
      },
      leftColor: {
        type: 'string',
        description: '导航栏左边字体颜色',
        default: 'rgba(0,0,0,1)',
      },
      rightColor: {
        type: 'string',
        description: '导航栏右边字体颜色',
        default: 'rgba(0,0,0,1)',
      },
      color: {
        type: 'string',
        description: '导航栏中间字体颜色',
        default: 'rgba(0,0,0,1)',
      },
    },
  })
  custom: object;
  @ApiProperty({
    type: Object,
    description: '按钮',
    properties: {
      id: { type: 'string', description: 'id' },
      backgroundOne: {
        type: 'string',
        description: '背景颜色1',
        default: 'rgba(255,255,255,1)',
      },
      backgroundTwo: {
        type: 'string',
        description: '背景颜色2',
        default: 'rgba(0,0,0,1)',
      },
      background: {
        type: 'string',
        description: '背景颜色默认与背景色1值',
        default: 'rgba(255,255,255,1)',
      },
      backgroundImage: {
        type: 'string',
        description: '背景图片',
        default: null,
      },
      mode: {
        type: 'string',
        description:
          '渐变方向--{从上到下: to bottom, 从左到右: to right, 左上角到右下角: to bottom right}',
        default: 'to right',
      },
      linearGradientStatus: {
        type: 'boolean',
        description: '开启渐变色',
        default: false,
      },
    },
  })
  button: object;
  @ApiProperty({
    type: Number,
    description: '删除标记 0-未删除 1-删除',
    default: 0,
    required: false,
  })
  isDelete: number;
}
